// import html2Canvas from '@/assets/js/html2canvas.esm.js'
import html2canvas from 'html2canvas'

export default html2canvas

interface _Html2CanvasOptions {
    // 是否允许跨域图像 (可能会导致画布被污染,使得无法使用canvas.toDataURL方法)。
    allowTaint: boolean;
    // 画布背景色(如果未在DOM中指定),设置为null则为透明。
    backgroundColor: string;
    // 现有Canvas元素用作绘图的基础。
    canvas: HTMLCanvasElement;
    // 如果浏览器支持,是否使用ForeignObject渲染(可能用于更好地支持SVG等)。
    foreignObjectRendering: boolean | undefined;
    // 加载图像的超时时间(以毫秒为单位),设置为0为禁用超时。
    imageTimeout: number;
    // 谓词函数, 用于从渲染中排除匹配的元素。
    ignoreElements: (element: any) => boolean;
    // 启用日志记录, 便于调试。
    logging: boolean;
    // 克隆文档以进行渲染时调用的回调函数,可用于修改将要渲染的内容,而不影响原始文档。
    onclone: () => void;
    // 代理URL,用于加载跨域图像。如果为空,则不会加载跨域图像
    proxy: string | undefined;
    // 是否在渲染后清除html2canvas临时创建的克隆DOM元素
    removeContainer: boolean;
    // 渲染的比例。默认为浏览器设备像素比率
    scale: number;
    // 是否尝试使用CORS从服务器加载图像
    useCORS: boolean;
    // 渲染canvas的宽度
    width: number;
    // 渲染canvas的高度
    height: number;
    // 裁剪画布的X坐标
    x: number;
    // 裁剪画布的Y坐标
    y: number;
    // 渲染元素时使用的X轴滚动位置(例如，对于使用position: fixed的元素)
    scrollX: number;
    // 渲染元素时使用的Y轴滚动位置(例如，对于使用position: fixed的元素)
    scrollY: number;
    // 渲染元素时使用的窗口宽度,可能影响媒体查询等
    windowWidth: number;
    // 渲染元素时使用的窗口高度,可能影响媒体查询等
    windowHeight: number;
}

export type Html2CanvasOptions = Partial<_Html2CanvasOptions>
